package org.springblade.modules.repair.dto.plan;

import cn.hutool.core.date.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springblade.common.utils.validation.constraints.DatePattern;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.Func;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * @Author ysq
 * @Date 2024/11/05
 * @Description 首页-我的任务分页搜索4.0版本
 */
@Data
public class PlanOrderHomePage4SearchDTO {

	/**
	 * 2025-09 新增
	 * 是否是历史
	 */
	@ApiModelProperty(value = "是否是历史")
	private Boolean searchHistory=false;

	/**
	 * 2025-09 新增计划日期排序字段
	 */
	@ApiModelProperty(value = "计划日期排序字段")
	private Boolean sortByPlanDateASC=false;

	/**
	 * 2025-09 新增保养年审/非年审字段
	 */
	@ApiModelProperty(value = "保养年审/非年审字段")
	private Integer useType;

	@DatePattern(message = "起始日期格式不正确，正确格式为：yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd HH:mm:ss")
	@NotBlank(message = "起始日期不能为空")
	@ApiModelProperty(value = "起始日期")
	private String beginTime;

	@DatePattern(message = "截止日期格式不正确，正确格式为：yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd HH:mm:ss")
	@NotBlank(message = "截止日期不能为空")
	@ApiModelProperty(value = "截止日期")
	private String endTime;

	@ApiModelProperty(value = "工单类型")
	private Integer typeStatus;

	@ApiModelProperty(value = "经度")
	private String longitude;

	@ApiModelProperty(value = "纬度")
	private String latitude;

	private Long userId;

	/**
	 * 是否是当天
	 */
	private boolean isToday;



	public Long getUserId() {
		return AuthUtil.getUserId();
	}

	public boolean isToday() {
		String today = DateUtil.today();
		// 今日，查询包含历史未完成的工单（暂定查询历史一年的工单，保养查7天）
        return Func.equalsSafe(this.getBeginTime().substring(0,10), today)
                && Func.equalsSafe(this.getEndTime().substring(0,10), today);
    }
}
